package com.youku.core.model.vo
{
   import com.youku.interfaces.IPlayListData;
   import com.youku.data.CaptionData;
   import com.youku.data.ThreeDData;
   import flash.utils.Dictionary;
   
   public class PlayListData extends Object implements IPlayListData
   {
      
      public function PlayListData() {
         super();
         this.sid = new Date().getTime() + "" + (int(Math.random() * 9000) + 1000) + "" + (int(Math.random() * 9000) + 1000);
         this.sid = "";
         this.sidTime = int(new Date().getTime() / 1000);
      }
      
      private var _interact:Boolean;
      
      private var _tt:Number;
      
      private var _categoryType:String;
      
      private var _categorySecondaries:String;
      
      private var _logoURL:String;
      
      private var _seed:Number;
      
      private var _tags:Array;
      
      private var _categories:Number;
      
      private var _videoId:String;
      
      private var _vidEncoded:String;
      
      private var _userName:String;
      
      private var _userId:Number;
      
      private var _title:String;
      
      private var _key1:String;
      
      private var _key2:String;
      
      private var _seconds:Number;
      
      private var _sourceVid:Number = 0;
      
      private var _streamFileIds:Object;
      
      private var _currentFileId:String;
      
      private var _segs:Object;
      
      private var _streamSizes:Object;
      
      private var _streamTypes:Array;
      
      private var _error:String;
      
      private var _errorlink:String;
      
      private var _token:String;
      
      private var _tokenup:String;
      
      private var _hashcash:String;
      
      private var _hashcashup:String;
      
      private var _tk:String;
      
      private var _oip:String;
      
      private var _show:ShowData;
      
      private var _currentUser:UserData;
      
      private var _controller:ControllerData;
      
      private var _programList:ProgramListData;
      
      private var _dvdinfo:DVDData;
      
      private var _folder:FolderData;
      
      private var _trial:TrialData;
      
      private var _caption:CaptionData;
      
      private var _threeD:ThreeDData;
      
      private var _totalTime:Number;
      
      private var _timeArr:Array;
      
      private var _segArr:Array;
      
      private var _typeArr:Array;
      
      private var _fileType:String;
      
      private var _currentLang:String;
      
      private var _currentLangID:String;
      
      private var _currentLangVid:String;
      
      private var _sid:String;
      
      private var _sidTime:Number;
      
      private var _videoSegmentsDic:Dictionary;
      
      private var _up:int;
      
      private var _down:int;
      
      private var _lastpoint:Number = -1;
      
      private var _rtmp:Boolean = false;
      
      private var _drm:Boolean = false;
      
      private var _watermarks:Object;
      
      private var _paike:Boolean;
      
      private var _previews:Array;
      
      private var _singlePlayURL:String;
      
      private var _verifyUser:VerifyUserData;
      
      private var _share:Boolean;
      
      private var _share_type:String;
      
      public function set interact(param1:Boolean) : void {
         this._interact = param1;
      }
      
      public function get interact() : Boolean {
         return this._interact;
      }
      
      public function set tt(param1:Number) : void {
         this._tt = param1;
      }
      
      public function get tt() : Number {
         return this._tt;
      }
      
      public function set ct(param1:String) : void {
         this._categoryType = param1;
      }
      
      public function get ct() : String {
         return this._categoryType;
      }
      
      public function set cs(param1:String) : void {
         this._categorySecondaries = param1;
      }
      
      public function get cs() : String {
         return this._categorySecondaries;
      }
      
      public function set logo(param1:String) : void {
         this._logoURL = param1;
      }
      
      public function get logo() : String {
         return this._logoURL;
      }
      
      public function set seed(param1:Number) : void {
         this._seed = param1;
      }
      
      public function get seed() : Number {
         return this._seed;
      }
      
      public function set tags(param1:Array) : void {
         this._tags = param1;
      }
      
      public function get tags() : Array {
         return this._tags;
      }
      
      public function set categories(param1:Number) : void {
         this._categories = param1;
      }
      
      public function get categories() : Number {
         return this._categories;
      }
      
      public function set videoId(param1:String) : void {
         this._videoId = param1;
      }
      
      public function get videoId() : String {
         return this._videoId;
      }
      
      public function set vidEncoded(param1:String) : void {
         this._vidEncoded = param1;
      }
      
      public function get vidEncoded() : String {
         return this._vidEncoded;
      }
      
      public function set userName(param1:String) : void {
         this._userName = param1;
      }
      
      public function get userName() : String {
         return this._userName;
      }
      
      public function set userId(param1:Number) : void {
         this._userId = param1;
      }
      
      public function get userId() : Number {
         return this._userId;
      }
      
      public function set title(param1:String) : void {
         this._title = param1;
      }
      
      public function get title() : String {
         return this._title;
      }
      
      public function set key1(param1:String) : void {
         this._key1 = param1;
      }
      
      public function get key1() : String {
         return this._key1;
      }
      
      public function set key2(param1:String) : void {
         this._key2 = param1;
      }
      
      public function get key2() : String {
         return this._key2;
      }
      
      public function set seconds(param1:Number) : void {
         this._seconds = param1;
      }
      
      public function get seconds() : Number {
         return this._seconds;
      }
      
      public function get sourceVid() : Number {
         return this._sourceVid;
      }
      
      public function set sourceVid(param1:Number) : void {
         this._sourceVid = param1;
      }
      
      public function set streamFileIds(param1:Object) : void {
         this._streamFileIds = param1;
      }
      
      public function get streamFileIds() : Object {
         return this._streamFileIds;
      }
      
      public function set currentFileId(param1:String) : void {
         this._currentFileId = param1;
      }
      
      public function get currentFileId() : String {
         return this._currentFileId;
      }
      
      public function set segs(param1:Object) : void {
         this._segs = param1;
      }
      
      public function get segs() : Object {
         return this._segs;
      }
      
      public function set streamSizes(param1:Object) : void {
         this._streamSizes = param1;
      }
      
      public function get streamSizes() : Object {
         return this._streamSizes;
      }
      
      public function set streamTypes(param1:Array) : void {
         this._streamTypes = param1;
      }
      
      public function get streamTypes() : Array {
         return this._streamTypes;
      }
      
      public function set user(param1:UserData) : void {
         this._currentUser = param1;
      }
      
      public function get user() : UserData {
         return this._currentUser;
      }
      
      public function set controller(param1:ControllerData) : void {
         this._controller = param1;
      }
      
      public function get controller() : ControllerData {
         return this._controller;
      }
      
      public function set show(param1:ShowData) : void {
         this._show = param1;
      }
      
      public function get show() : ShowData {
         return this._show;
      }
      
      public function set programList(param1:ProgramListData) : void {
         this._programList = param1;
      }
      
      public function get programList() : ProgramListData {
         return this._programList;
      }
      
      public function set dvdinfo(param1:DVDData) : void {
         this._dvdinfo = param1;
      }
      
      public function get dvdinfo() : DVDData {
         return this._dvdinfo;
      }
      
      public function set folder(param1:FolderData) : void {
         this._folder = param1;
      }
      
      public function get folder() : FolderData {
         return this._folder;
      }
      
      public function get trial() : TrialData {
         return this._trial;
      }
      
      public function set trial(param1:TrialData) : void {
         this._trial = param1;
      }
      
      public function get caption() : CaptionData {
         return this._caption;
      }
      
      public function set caption(param1:CaptionData) : void {
         this._caption = param1;
      }
      
      public function get threeD() : ThreeDData {
         return this._threeD;
      }
      
      public function set threeD(param1:ThreeDData) : void {
         this._threeD = param1;
      }
      
      public function set totalTime(param1:Number) : void {
         this._totalTime = param1;
      }
      
      public function get totalTime() : Number {
         return this._totalTime;
      }
      
      public function set timeArr(param1:Array) : void {
         this._timeArr = param1;
      }
      
      public function get timeArr() : Array {
         return this._timeArr;
      }
      
      public function get segArr() : Array {
         if(this._videoSegmentsDic == null || this._fileType == null || this._fileType == "")
         {
            return null;
         }
         return this._videoSegmentsDic[this._fileType];
      }
      
      public function set videoSegmentsDic(param1:Dictionary) : void {
         this._videoSegmentsDic = param1;
      }
      
      public function get videoSegmentsDic() : Dictionary {
         return this._videoSegmentsDic;
      }
      
      public function set typeArr(param1:Array) : void {
         this._typeArr = param1;
      }
      
      public function get typeArr() : Array {
         return this._typeArr;
      }
      
      public function get hasMultiTypes() : Boolean {
         var _loc1_:* = false;
         var _loc2_:* = false;
         var _loc3_:* = 0;
         while(_loc3_ < this.typeArr.length)
         {
            if(this.typeArr[_loc3_] == "mp4")
            {
               _loc1_ = true;
            }
            if(this.typeArr[_loc3_] == "hd2")
            {
               _loc2_ = true;
            }
            _loc3_++;
         }
         if((_loc1_) || (_loc2_))
         {
            return true;
         }
         return false;
      }
      
      public function get hasHD() : Boolean {
         var _loc1_:* = false;
         var _loc2_:* = 0;
         while(_loc2_ < this.typeArr.length)
         {
            if(this.typeArr[_loc2_] == "hd2")
            {
               _loc1_ = true;
            }
            _loc2_++;
         }
         return _loc1_;
      }
      
      public function get hasMid() : Boolean {
         var _loc1_:* = false;
         var _loc2_:* = 0;
         while(_loc2_ < this.typeArr.length)
         {
            if(this.typeArr[_loc2_] == "mp4")
            {
               _loc1_ = true;
            }
            _loc2_++;
         }
         return _loc1_;
      }
      
      public function get has1080P() : Boolean {
         var _loc1_:* = false;
         var _loc2_:* = 0;
         while(_loc2_ < this.typeArr.length)
         {
            if(this.typeArr[_loc2_] == "hd3")
            {
               _loc1_ = true;
            }
            _loc2_++;
         }
         return _loc1_;
      }
      
      public function set fileType(param1:String) : void {
         this._fileType = param1;
      }
      
      public function get fileType() : String {
         return this._fileType;
      }
      
      public function set sid(param1:String) : void {
         this._sid = param1;
      }
      
      public function get sid() : String {
         return this._sid;
      }
      
      public function get sidTime() : Number {
         return this._sidTime;
      }
      
      public function set sidTime(param1:Number) : void {
         this._sidTime = param1;
      }
      
      public function get error() : String {
         return this._error;
      }
      
      public function set error(param1:String) : void {
         this._error = param1;
      }
      
      public function get errorlink() : String {
         return this._errorlink;
      }
      
      public function set errorlink(param1:String) : void {
         this._errorlink = param1;
      }
      
      public function get currentLang() : String {
         return this._currentLang;
      }
      
      public function set currentLang(param1:String) : void {
         this._currentLang = param1;
      }
      
      public function get currentLangID() : String {
         return this._currentLangID;
      }
      
      public function set currentLangID(param1:String) : void {
         this._currentLangID = param1;
      }
      
      public function get currentLangVid() : String {
         return this._currentLangVid;
      }
      
      public function set currentLangVid(param1:String) : void {
         this._currentLangVid = param1;
      }
      
      public function get down() : int {
         return this._down;
      }
      
      public function set down(param1:int) : void {
         this._down = param1;
      }
      
      public function get up() : int {
         return this._up;
      }
      
      public function set up(param1:int) : void {
         this._up = param1;
      }
      
      public function get token() : String {
         return this._token;
      }
      
      public function set token(param1:String) : void {
         this._token = param1;
      }
      
      public function get tokenup() : String {
         return this._tokenup;
      }
      
      public function set tokenup(param1:String) : void {
         this._tokenup = param1;
      }
      
      public function get hashcash() : String {
         return this._hashcash;
      }
      
      public function set hashcash(param1:String) : void {
         this._hashcash = param1;
      }
      
      public function get hashcashup() : String {
         return this._hashcashup;
      }
      
      public function set hashcashup(param1:String) : void {
         this._hashcashup = param1;
      }
      
      public function get lastpoint() : Number {
         return this._lastpoint;
      }
      
      public function set lastpoint(param1:Number) : void {
         this._lastpoint = param1;
      }
      
      public function resetTimeArr() : void {
         var _loc2_:* = 0;
         var _loc1_:Array = this._videoSegmentsDic[this._fileType];
         this._timeArr = [];
         if(_loc1_)
         {
            _loc2_ = 0;
            while(_loc2_ < _loc1_.length)
            {
               this._timeArr.push((_loc1_[_loc2_] as VideoSegmentData).seconds);
               _loc2_++;
            }
         }
      }
      
      public function get rtmp() : Boolean {
         return this._rtmp;
      }
      
      public function set rtmp(param1:Boolean) : void {
         this._rtmp = param1;
      }
      
      public function get drm() : Boolean {
         return this._drm;
      }
      
      public function set drm(param1:Boolean) : void {
         this._drm = param1;
      }
      
      public function get watermarks() : Object {
         return this._watermarks;
      }
      
      public function set watermarks(param1:Object) : void {
         this._watermarks = param1;
      }
      
      public function get paike() : Boolean {
         return this._paike;
      }
      
      public function set paike(param1:Boolean) : void {
         this._paike = param1;
      }
      
      public function get previews() : Array {
         return this._previews;
      }
      
      public function set previews(param1:Array) : void {
         this._previews = param1;
      }
      
      public function get singlePlayURL() : String {
         return this._singlePlayURL;
      }
      
      public function set singlePlayURL(param1:String) : void {
         this._singlePlayURL = param1;
      }
      
      public function get verifyUser() : VerifyUserData {
         return this._verifyUser;
      }
      
      public function set verifyUser(param1:VerifyUserData) : void {
         this._verifyUser = param1;
      }
      
      public function get share() : Boolean {
         return this._share;
      }
      
      public function set share(param1:Boolean) : void {
         this._share = param1;
      }
      
      public function get tk() : String {
         return this._tk;
      }
      
      public function set tk(param1:String) : void {
         this._tk = param1;
      }
      
      public function get oip() : String {
         return this._oip;
      }
      
      public function set oip(param1:String) : void {
         this._oip = param1;
      }
      
      public function get share_type() : String {
         return this._share_type;
      }
      
      public function set share_type(param1:String) : void {
         this._share_type = param1;
      }
   }
}
